package com.haircut.sys.utils;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.haircut.sys.model.user.SysUser;
import com.haircut.sys.vo.user.UserReqVo;
import com.haircut.sys.vo.user.UserResVo;
import com.modular.constant.NumberConstant;
import com.modular.result.PageParams;
import com.modular.result.PageResult;

import java.util.List;
import java.util.Optional;

public class PageUtils {

    public static  <T> PageResult<T> cover(PageParams params){
        PageResult<T> pageResult = new PageResult<>();
        pageResult.setPageSize(params.getPageSize().longValue());
        pageResult.setPageNum(params.getPageNum().longValue());
        pageResult.setTotal(NumberConstant.LONG_ZERO);
        pageResult.setTotalPage(NumberConstant.LONG_ZERO);
        return pageResult;
    }

    public static  <T> PageResult<T> cover(Page<T> page){
        PageResult<T> pageResult = new PageResult<>();
        pageResult.setPageSize(page.getSize());
        pageResult.setPageNum(page.getCurrent());
        pageResult.setData(page.getRecords());
        pageResult.setTotal(page.getTotal());
        pageResult.setTotalPage(page.getPages());
        return pageResult;
    }

    public static  <T> PageResult<T> coverPageData(Page<?> page, List<T> data){
        PageResult<T> pageResult = new PageResult<>();
        pageResult.setPageSize(page.getSize());
        pageResult.setPageNum(page.getCurrent());
        pageResult.setData(data);
        pageResult.setTotal(page.getTotal());
        pageResult.setTotalPage(page.getPages());
        return pageResult;
    }

}
